package com.hyz.yuaiagent.demo.invoke;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.boot.CommandLineRunner;

/**
 * SpringAI框架调用AI
 */
//@Component
public class SpringAiInvoke implements CommandLineRunner {
    /*这里装配的时候名称必须是这一个 因为spring通过名称进行装配然后类型  然而 ChatModel是一个接口
     里面有很多 模型 所以名字必须是 dashScopeChatModel如果我们需要使用dashScopeChatModel*/
    @Resource
    private ChatModel dashScopeChatModel;

    /**
     * CommandLineRunner 可以实现单次测试springboot的方法
     * 1. 添加 Component注解
     * 2. impl CommandLineRunner
     *
     * @param args
     * @throws Exception
     */
    @Override
    public void run(String... args) throws Exception {
        AssistantMessage assistantMessage = dashScopeChatModel.call(new Prompt("你好"))
                .getResult()
                .getOutput();

        System.out.println("这里是test:" + assistantMessage.getText());//这里是test:你好！今天过得怎么样？
        System.out.println("这里是AssistantMessage:" + assistantMessage);
        //这里是AssistantMessage:AssistantMessage [messageType=ASSISTANT, toolCalls=[], textContent=你好！今天过得怎么样？, metadata={finishReason=STOP, id=dcbd4a78-647c-93a1-917a-cbe081423d1a, role=ASSISTANT, messageType=ASSISTANT, reasoningContent=}]

    }
}
